package com.huohuo.javabasic.jvm;

public class InterDiffer {
    public static void main(String[] args) {
        String s = new String( "888" );
        s.intern();//s的引用无法传递到字符串常量池中

        String s1 = "888";//引用常量池中的值
        // == 比較的是字符串常量池中的引用,s指向的是堆中的引用，s1 指向的是常量池中的引用
        System.out.println(s == s1);//false
        //jdk7之后可以将字符串的引用放到常量池中，jdk6之前只能讲字符串的副本放进常量池

        String s2 = new String( "888" )+new String( "888" );
        s2.intern();//因为常量池中没有888888 将s2的引用地址放进常量池
        String s3 = "888888";
        System.out.println(s2 == s3);//true

        //如果常量池中已经存在该对象的引用，不能把引用放进常量池，在jdk7以后可以将引用放进常量池。

    }
}



















